Computer users often have a need to find files or folders stored at various locations on a computer or network. These files or folders may be searched based on a set of criteria as specified by the user. Typically, the user must specify the folders in which the user wishes to search, i.e., the scope of the search. For example, a user wishing to find all files satisfying desired criteria must specify which folders or computer drives to search, e.g. search the C: drive, D: drive, or C:\users\foo, etc.
Prior techniques of searching for desired files have been problematic and frustrating for the computer user. For example, these prior techniques typically permit searching for files within a specified scope. However, by searching in a specified scope of search, there is no flexibility in the search in the event that the range of files to be searched is changed independent of the scope. Prior techniques of searching for files are also inflexible because a search query in one search cannot be used to search for files in another search. Thus, prior art techniques do not provide the user with the capability of performing a search with a query definition by incorporating another query definition. Also, prior techniques of searching for files do not provide for the ability to dynamically alter a query definition such that a second search incorporating the query definition may be automatically updated. Rather, the user must repeatedly specify the search criteria or query definitions.
As a user continues to search for and identify data files, the data files become more and more abundant. Data files are stored in a pattern or taxonomy (e.g., directory structure). As new data files are identified (i.e., with new searches), these new data files are added to the existing directory structure or taxonomies, typically grouped according to specified criteria. For example, the specified criteria may correspond to search criteria for the data files identified. If a user changes the desired criteria on a subsequent search or otherwise alters the search criteria, additional data files may be identified satisfying the new search criteria. As more and more new searches are made with new search criteria, identified data files continue to be added to the existing taxonomy or directory structure. However, the new data files are merely included by adding the additional search criteria to the existing taxonomy (e.g., as subfolders) rather than dynamically updating the existing taxonomy based on modified search criteria. This results in rigid sets of identified data files that may correspond to potentially outdated search criteria because the taxonomy or directory structure of the identified data files is unable to fluidly adapt to changes in the search criteria.
For example, a computer user wishing to find all audio files on the computer for favorite (e.g., 5 star rating) 80's songs must specify all necessary filters, e.g., 80's music and/or 5 star for each search. If new files or songs are added, the search would have to be recreated and repeated. Because it is likely that new files are being added or removed periodically, the computer user would always have to repeat the time-consuming process of recreating the search criteria for an updated list of files. Also, if a modification of the query definition for identifying the desired files occurs, the user would be unable to easily and efficiently incorporate the modifications in the query definition in a second search that incorporates the query definition. Rather, the user must enter the search criteria again and repeat the search. Also, the user would have to manually re-organize a potentially large number of data files according to updated criteria.
Similarly, the computer user would also have to re-search for the same or modified list of files in a user specified folder or volume. This is frustrating for the user because desired files may be located in a folder other than the folder searched. If that is the case, the computer user who is searching in a different folder would fail to successfully locate all the files. Thus, the file would be effectively “lost” and the computer user would lose access to the file even if only because the file is not readily locatable.
Thus, there exists a need in the art for a system and method in which a computer user may locate desired files on a computer effectively and efficiently by defining or composing a query. Also, there is a need in the art to increase flexibility of a file search by providing a method and system for further utilizing a query within a query or combining queries and other filter information. There also exists a need in the art for a system and method in which to build a query structure that relates to other query structures such that other query definitions from other queries may flow into the query structure.